|
|
@@ -4,6 +4,7 @@ from __future__ import division
|
4
|
4
|
|
5
|
5
|
import xlrd
|
6
|
6
|
from django.conf import settings
|
|
7
|
+from django.db import transaction
|
7
|
8
|
from pysnippets.strsnippets import strip
|
8
|
9
|
from TimeConvert import TimeConvert as tc
|
9
|
10
|
|
|
|
@@ -239,6 +240,7 @@ def fill_ym():
|
239
|
240
|
ssi.save()
|
240
|
241
|
|
241
|
242
|
|
|
243
|
+@transaction.atomic
|
242
|
244
|
def refreshs():
|
243
|
245
|
ConsumeUserStatisticInfo.objects.all().delete()
|
244
|
246
|
ConsumeSaleStatisticInfo.objects.all().delete()
|
|
|
@@ -255,21 +257,21 @@ def refreshs():
|
255
|
257
|
except ModelInfo.DoesNotExist:
|
256
|
258
|
continue
|
257
|
259
|
|
258
|
|
- cusi, _ = ConsumeUserStatisticInfo.objects.get_or_create(
|
|
260
|
+ cusi, _ = ConsumeUserStatisticInfo.objects.select_for_update().get_or_create(
|
259
|
261
|
brand_id=mdl.brand_id,
|
260
|
262
|
ymd=ymd,
|
261
|
263
|
)
|
262
|
264
|
cusi.users = list(set(cusi.users + [log.user_id]))
|
263
|
265
|
cusi.num = len(cusi.users)
|
264
|
266
|
cusi.save()
|
265
|
|
- cusi, _ = ConsumeUserStatisticInfo.objects.get_or_create(
|
|
267
|
+ cusi, _ = ConsumeUserStatisticInfo.objects.select_for_update().get_or_create(
|
266
|
268
|
brand_id=mdl.brand_id,
|
267
|
269
|
ymd=ymd[:6],
|
268
|
270
|
)
|
269
|
271
|
cusi.users = list(set(cusi.users + [log.user_id]))
|
270
|
272
|
cusi.num = len(cusi.users)
|
271
|
273
|
cusi.save()
|
272
|
|
- cusi, _ = ConsumeUserStatisticInfo.objects.get_or_create(
|
|
274
|
+ cusi, _ = ConsumeUserStatisticInfo.objects.select_for_update().get_or_create(
|
273
|
275
|
brand_id=mdl.brand_id,
|
274
|
276
|
ymd=ymd[:4],
|
275
|
277
|
)
|
|
|
@@ -277,19 +279,19 @@ def refreshs():
|
277
|
279
|
cusi.num = len(cusi.users)
|
278
|
280
|
cusi.save()
|
279
|
281
|
|
280
|
|
- cssi, _ = ConsumeSaleStatisticInfo.objects.get_or_create(
|
|
282
|
+ cssi, _ = ConsumeSaleStatisticInfo.objects.select_for_update().get_or_create(
|
281
|
283
|
brand_id=mdl.brand_id,
|
282
|
284
|
ymd=ymd,
|
283
|
285
|
)
|
284
|
286
|
cssi.num += 1
|
285
|
287
|
cssi.save()
|
286
|
|
- cssi, _ = ConsumeSaleStatisticInfo.objects.get_or_create(
|
|
288
|
+ cssi, _ = ConsumeSaleStatisticInfo.objects.select_for_update().get_or_create(
|
287
|
289
|
brand_id=mdl.brand_id,
|
288
|
290
|
ymd=ymd[:6],
|
289
|
291
|
)
|
290
|
292
|
cssi.num += 1
|
291
|
293
|
cssi.save()
|
292
|
|
- cssi, _ = ConsumeSaleStatisticInfo.objects.get_or_create(
|
|
294
|
+ cssi, _ = ConsumeSaleStatisticInfo.objects.select_for_update().get_or_create(
|
293
|
295
|
brand_id=mdl.brand_id,
|
294
|
296
|
ymd=ymd[:4],
|
295
|
297
|
)
|
|
|
@@ -297,7 +299,7 @@ def refreshs():
|
297
|
299
|
cssi.save()
|
298
|
300
|
|
299
|
301
|
# 日型号销量统计
|
300
|
|
- cmssi, _ = ConsumeModelSaleStatisticInfo.objects.get_or_create(
|
|
302
|
+ cmssi, _ = ConsumeModelSaleStatisticInfo.objects.select_for_update().get_or_create(
|
301
|
303
|
brand_id=mdl.brand_id,
|
302
|
304
|
model_name=mdl.model_uni_name,
|
303
|
305
|
ymd=ymd,
|
|
|
@@ -305,7 +307,7 @@ def refreshs():
|
305
|
307
|
cmssi.num += 1
|
306
|
308
|
cmssi.save()
|
307
|
309
|
# 月型号销量统计
|
308
|
|
- cmssi, _ = ConsumeModelSaleStatisticInfo.objects.get_or_create(
|
|
310
|
+ cmssi, _ = ConsumeModelSaleStatisticInfo.objects.select_for_update().get_or_create(
|
309
|
311
|
brand_id=mdl.brand_id,
|
310
|
312
|
model_name=mdl.model_uni_name,
|
311
|
313
|
ymd=ymd[:6],
|
|
|
@@ -313,7 +315,7 @@ def refreshs():
|
313
|
315
|
cmssi.num += 1
|
314
|
316
|
cmssi.save()
|
315
|
317
|
# 年型号销量统计
|
316
|
|
- cmssi, _ = ConsumeModelSaleStatisticInfo.objects.get_or_create(
|
|
318
|
+ cmssi, _ = ConsumeModelSaleStatisticInfo.objects.select_for_update().get_or_create(
|
317
|
319
|
brand_id=mdl.brand_id,
|
318
|
320
|
model_name=mdl.model_uni_name,
|
319
|
321
|
ymd=ymd[:4],
|
|
|
@@ -331,6 +333,7 @@ def refreshs():
|
331
|
333
|
})
|
332
|
334
|
|
333
|
335
|
|
|
336
|
+@transaction.atomic
|
334
|
337
|
def refreshs2():
|
335
|
338
|
SaleStatisticInfo.objects.all().delete()
|
336
|
339
|
ModelSaleStatisticInfo.objects.all().delete()
|
|
|
@@ -354,7 +357,7 @@ def refreshs2():
|
354
|
357
|
continue
|
355
|
358
|
|
356
|
359
|
try:
|
357
|
|
- clerk = SaleclerkInfo.objects.select_for_update().get(clerk_id=log.clerk_id, status=True)
|
|
360
|
+ clerk = SaleclerkInfo.objects.get(clerk_id=log.clerk_id, status=True)
|
358
|
361
|
except SaleclerkInfo.DoesNotExist:
|
359
|
362
|
continue
|
360
|
363
|
|